﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Sistema_Totem.Clases;
using Sistema_Totem.Acceso_a_Datos.DAOS;
using Sistema_Totem.Acceso_a_Datos.FabricaDAOS;
using Sistema_Totem.Acceso_a_Datos.IDAOS;
using Sistema_Totem.Clases.Fabricas;
using System.Xml;

namespace Sistema_Totem.Logica.Comandos.ComandoPlantilla
{
    /// <summary>
    /// comando que pide al dao el xml de una plantilla en especifico y la pinta en pantalla
    /// </summary>
    public class ComandoPintarXml : Comando<List<String>>
    {
        iDAOPlantilla idao = FabricaDAOSQLServer.getInstacia().CrearDAOPlantilla();
        XmlDocument xDoc = new XmlDocument();
        private int id;
        public ComandoPintarXml(int valor) 
        {
            id = valor;
        }

        public override List<String> Ejecutar()
        {
            List<string> prueba2 = new List<string>();
            XmlDocument prueba = new XmlDocument();
            xDoc = idao.TraerXml(id);
       
            XmlNodeList plantilla = xDoc.GetElementsByTagName("PLANTILLA");

            XmlNodeList lista =
                ((XmlElement)plantilla[0]).GetElementsByTagName("SECCION");

            foreach (XmlElement nodo in lista)
            {

                int i = 0;

                XmlNodeList nNombre =
                nodo.GetElementsByTagName("TITULO");
                


                //Console.WriteLine("");
                //Console.WriteLine("-" + nNombre[i].InnerText + ":");
                //Console.WriteLine("");
                prueba2.Add("Seccion:" + nNombre[i].InnerText);

                XmlNodeList lista2 = ((XmlElement)nodo).GetElementsByTagName("ELEMENTO");
                foreach (XmlElement nodo2 in lista2)
                {
                    int q = 0;

                    XmlNodeList nnon = nodo2.GetElementsByTagName("NOMBRE");
                    XmlNodeList tipo = nodo2.GetElementsByTagName("TIPO");
                    prueba2.Add("Elemento:"+nnon[q].InnerText);
                    prueba2.Add("Tipo:" + tipo[q].InnerText);
                }

            }

            return prueba2;
            
        }


    }
}